//调用父类的构造方法
main() {
  print(WuLing('1234567890').color);
  final map = {1: 2};
  print(map[1]);
}

class Car {
  var color;

  Car(this.color);
}

class WuLing extends Car {
  //车架号
  final String id;
  static final Map<String, WuLing> _map = {};

  factory WuLing(String id) {
    //如果缓存中没有此对象,则创建对象并添加到缓存
    if (!_map.containsKey(id)) {
      _map[id] = WuLing.newCar(id);
    }
    return _map[id] as WuLing;
  }

  //构造方法重定向
  WuLing.newCar(this.id) : super("蓝色");
}
